Package com.apps.services

Source Code of com.apps.services.RMPService

/*
* @author Brandon Wong
*/

package com.apps.services;

import java.io.BufferedReader;
import java.io.IOException;
import java.net.MalformedURLException;
import java.util.ArrayList;
import java.util.List;

import com.apps.services.factory.RMPServiceFactory;
import com.apps.ubc.cc.model.RMPModel;
import com.apps.utils.RMPUtils;
import com.apps.utils.WrapperUtils;

public class RMPService {

  // private String tid =
  // "<td><a href=\"ShowRatings.jsp?tid=923805\">Voll, Kimberly</a></td>";

  private static String is_name_link = "<td><a href=\"ShowRatings.jsp?tid=<name>\">";
  private static String start = "<td><a href=\"ShowRatings.jsp?";
  private static String UNIVERSITY = "University of British Columbia - Vancouver";

 
  public RMPService(){
  }
 
  public List<RMPModel> getProfInfo(String name) {
    List<RMPModel> out = new ArrayList<RMPModel>();
    if(name == null || name.isEmpty())
      return out;
    String[] profnames = RMPUtils.getMultipleNames(name);
    for(int i = 0; i < profnames.length; i++){
      String p_last_name = RMPUtils.parseFirstLastName(profnames[i])[0];
      String p_first_name = RMPUtils.parseFirstLastName(profnames[i])[1];
    String result = "";
    p_last_name = p_last_name.toLowerCase();
    String tid = "";
    String search_name = "";
    boolean isFound=false;

    try {

      BufferedReader br = WrapperUtils
          .getURLContentReader(WrapperUtils.RMP_SEARCH_URL.replace(
              "<prof last name>", p_last_name));

      String current_line = br.readLine();

      while (current_line!=null&&!current_line.contains("<!-- Career Rookie form -->")) {
        if (current_line.contains(start)) {
           //System.out.println("value is " + current_line);
         
          tid = WrapperUtils.stringInBwtn(
              "<a href=\"ShowRatings.jsp?tid=", "\"><",
              current_line);
         
          //System.out.println("tid is " + tid);
          current_line = br.readLine();
          while (current_line!=null&&!current_line.contains(start)) {
            // Loop until you see it.
            // System.out.println(current_line);
            // Just in case
          }
         
          String namer = is_name_link.replace("<name>", tid);
          //System.out.println(namer);
          //System.out.println(">>"+current_line);
          search_name = WrapperUtils.stringInBwtn(namer, "</a></td>", current_line);
          //System.out.println(is_name);
          current_line = br.readLine();
          while (current_line!=null&&!current_line.contains("<td><a href=")) {
            current_line = br.readLine();
            // Loop until you see it.
            // System.out.println(current_line);
            // Just in case
          }
          String school_name=WrapperUtils.stringInBwtn("\">", "</a></td>", current_line);
          //System.out.println("school "+school_name);
         
         
          String s_first = "";
         
          String[] fl = RMPUtils.parseFirstLastName(search_name);
          String s_last = fl[0];
         
          if(fl.length > 1)
            s_first = fl[1];
          

            if (p_last_name.toLowerCase().equals(s_last.toLowerCase()) && s_first.toLowerCase().startsWith(p_first_name.toLowerCase()) && school_name.toLowerCase().equals(UNIVERSITY.toLowerCase())) {
             
                result = getOverallQuality(WrapperUtils.RMP_INFO_URL.replace("<tid>", tid))
              //System.out.println("YOYOYO " + is_name);
              isFound=true;
              break;
            }
         
        }
        if(isFound==true){
          break;
        }
        current_line = br.readLine();
      }

    } catch (MalformedURLException e) {
      // TODO Auto-generated catch block
      e.printStackTrace();
    } catch (IOException e) {
      // TODO Auto-generated catch block
      e.printStackTrace();
    }
   
    RMPModel rm = new RMPModel (profnames[i], "not found", "not found");
    if(!result.equals(""))
      rm =new RMPModel (profnames[i], result, WrapperUtils.RMP_INFO_URL.replace("<tid>", tid));
    System.out.println(rm.toString());
    out.add(rm);
    }
    return out; // method stub
  }
 
 
  public String getOverallQuality(String url){
    BufferedReader br;
    try {
      br = WrapperUtils.getURLContentReader(url);
      String line = br.readLine();
     
      while(line != null && !line.contains("<div id=\"otherInfo\">")){
        //System.out.println("FINDING PROF INFOR: "+line);
        if(line.contains("<div id=\"scoreCard\">")){
          line=br.readLine();
          while(line!=null&&!line.contains("<li class=\"tTip\" id=\"quality")){
           
            line=br.readLine();
          }
          //System.out.println(line);
          String overall=WrapperUtils.stringInBwtn("<strong>","</strong>", line);
          return overall;
         
        }
        line = br.readLine();
      }
 
     
     
    } catch (MalformedURLException e) {
      // TODO Auto-generated catch block
      e.printStackTrace();
    } catch (IOException e) {
      // TODO Auto-generated catch block
      e.printStackTrace();
    }
   
    return "";//method stub
 
  }
 
  public static void main(String[] a){
    new RMPService().getProfInfo("Wohlstadter, Eric");
  }
 
}
TOP

Related Classes of com.apps.services.RMPService

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.